package com.yanggu.scala.chapater12

object MatchDemo01 {

  def main(args: Array[String]): Unit = {
    //Scala中的模式匹配类似于Java中的switch语法，但是更加强大。
    //模式匹配语法中，采用match关键字声明，每个分支采用case关键字进行声明。
    //当需要匹配时，会从第一个case分支开始，如果匹配成功，那么执行对应的逻辑代码，如果匹配不成功，继续执行下一个分支进行判断。
    //如果所有case都不匹配，那么会执行case _ 分支，类似于Java中default语句。
    //case语句按照声明的前后顺序执行。
    //如果一个都没有匹配上, 但是又没有case _ 分支, 就会报错Exception in thread "main" scala.MatchError:
    //case语句中, 不用写break语句。自动中断case分支
    //如果case语句中的代码较多, 也可以使用 {  }括起来。也可以不写, 编译器会自动帮我们加上
    val oper = '+'
    val n1 = 20
    val n2 = 10
    var rest = 0
    oper match {
      case '+' =>
        println("匹配到+操作符")
        rest = n1 + n2
      case '-' => rest = n1 - n2
      case '*' => rest = n1 * n2
      case '/' => rest = n1 / n2
      case _ => println("oper error")
    }
    println(rest)
  }

}
